WordPress auf eine neue Domain umziehen

umzug.jpgJeder der diesen Beitrag nicht über den Feedreader sondern im Blog liest, wird feststellen, dass wir umgezogen sind – ich und der Blog. Die alte Subdomain helmschrott.de leitet nun automatisch um auf helmschrott.de/blog.

Die Gründe für diesen Umzug sind schnell erklärt: Ich plane die Website in Zukunft etwas um den Blog herum auszubauen und habe gerne alles kompakt integriert. Der Blog wird dann nur ein Teil der Website sein. Damit das (egal mit welcher Software) ohne große Umstände möglich ist, will ich alles auf einem Host (also der selben Domain/Subdomain) laufen haben.

Um dem ein oder anderen behilflich zu sein, der in Zukunft irgendwann mal seinen WordPress-Blog umziehen will, halte ich hier mal die Schritte fest, die ich durchgeführt habe und die bei vermutlich jedem anderen Umzug nahezu identisch sein werden. Gut möglich, dass es für den ein oder anderen Schritt ein Plugin gibt. Ich habe das nicht geprüft. Wenn ihr diesbzgl. was wisst, gebt einfach in den Kommentaren bescheid, dann ergänze ich den Beitrag entsprechend.Damit der Umzug reibungslos funktioniert spielen mehrere Komponenten eine Rolle. Eine der wichtigsten ist dabei die Software – in diesem Fall WordPress – entsprechend auf die neuen gegebenheiten einzustellen. Im Falle von WordPress ist das leider schwieriger als bei anderen Systemen, da WordPress z.B. den Permalink zu einem Beitrag inklusive der kompletten URL in der Datenbank ablegt. Neben den Permalinks wird auch in den Optionen von WordPress zweimal die URL abgelegt. Diese beiden Änderungen lassen sich mit entsprechendem Zugang zur Datenbank und geringfügigen Kenntnissen leicht durchführen. Aber von Anfang an…

Ich glaube eigentlich nicht, dass ich das noch sagen muss, aber… doch, vermutlich muss ich es sagen: Vor dieser ganzen Aktion sollte natürlich ein Backup von Dateien und Datenbank angefertigt werden!

Wenn also dieses Backup angefertigt ist und die Daten an ihrem neuen Bestimmungsort angekommen sind, sollten folgende Schritte durchgeführt werden:

Konfiguration anpassen

In die Konfigurationsdatei von WordPress müssen ggf. neue Datenbank-Daten eingetragen werden. Sie nennt sich wp-config.php und liegt im Hauptverzeichnis von WordPress. Weiterhin muss die in der Datenbank gespeicherte URL des Blogs auf die neue angepasst werden. Das geht am einfachsten über ein Webfrontend zur Datenbankverwaltung wie z.B. phpMyAdmin. Der passende SQL-Query hierfür wäre z.B.

UPDATE wp_options SET option_value = replace(option_value, 'http://www.alte-blog-url.de/blog', 'http://neue.blog.url') WHERE option_name = 'home' OR option_name = 'siteurl';

Damit sollte der Blog schonmal über den Browser erreichbar sein und es kann überprüft werden ob die neuen Datenbankdaten stimmen. Vermutlich wird aber noch einiges im Blog nicht funktionieren. Dazu gehören z.B. die Links zu den einzelnen Beiträgen oder die in das Blog eingebundenen Bilder, sofern diese auf die alte Blog-Adresse zeigen.

Permalinks updaten

WordPress speichert leider zu jedem Beitrag den vollständigen Permalink in der Datenbank. Warum das so ist kann ich nicht sagen, andere Systeme kommen ohne diesen Schritt aus, und leider bietet WordPress auch keine einfache Möglichkeit die URLs zu ändern, weshalb wir auch hier wieder auf einen SQL-Query zurückgreifen:

UPDATE wp_posts SET guid = replace(guid, 'http://www.alte-blog-url.de/blog','http://neue.blog.url');

Als zusätzlicher Schritt kann es nötig sein im Adminbereich von WordPress unter Einstellungen -> Permalinks einmal die dortigen Werte zu speichern. Danach sollten die Links zu den Beiträgen auf dem neuen Blog funktionieren.

Bilder und Links in Beiträgen reparieren

Wird ein Bild im Beitrag eingebunden, so passiert dies oftmals über die vollständige URL des Bildes. Selbst wenn nicht, kann es beim Wechsel des Verzeichnisses zu Problemen kommen. Auch das lässt sich über eine Datenbankabfrage recht einfach korrigieren:

UPDATE wp_posts SET post_content = replace(post_content, 'http://www.alte-blog-url.de/blog', 'http://neue.blog.url');

Damit sollten die eingebauten Links und Bilder wieder funktionieren. Je nach Situation ist für jede dieser Datenbankabfragen eine Anpassung nötig. Bitte klärt das ab bevor ihr sie durchführt und macht das am besten auch nur, wenn ihr halbwegs wisst was ihr macht.

Umleitung der Aufrufe

Um uns mit Google & Co. und natürlich auch mit unserem Stammbesuchern so gut wie möglich zu stellen, müssen wir nun noch die Aufrufe auf die alte URl möglichst sauber umleiten. Für Google ist der Idealfall ein HTTP-Redirect (Permanent – 301). Den erreichen wir über einen einfachen Eintrag in der .htaccess-Datei unter der alten URL. In meinen fall sieht das so aus:

RewriteEngine on
RewriteRule (.*) https://helmschrott.de/blog/$1 [R=301,L] 

Die Umleitung am besten direkt testen – auch mit alten Beitrags-URLs. Idealerweise sollten alle Inhalte 1:1 sauber umgeleitet werden. Durch die Umleitung sollte Google normalerweise eingehende Links zur alten URL entsprechend weiterhin für die neue URL werten. Sicher ist das jedoch nie – in Sachen Google ist das immer ein Stück weit ein Spiel mit dem Feuer. Auf jeden Fall sollte darauf geachtet werden, dass die Umleitung dauerhaft bestehen bleibt – alte Links tun dies ja in der Regel auch.

Anpassung statischer Links, Plugins und anderen Diensten

Zum Schluss müssen wir nun noch die Templates des Themes nach evtl. händisch eingetragenen Links zum Impressum, zum Feed oder zu anderen Zielen durchsuchen um diese entsprechend anpassen zu können. Außerdem muss z.b. bei Feedburner (falls vorhanden) und ggf. anderen Diensten die URL des Feeds oder der Link zum Blog entsprechend angepasst werden.

Weiterhin müssen ggf. die Optionen der diversen eingesetzten Plugins kontrolliert werden, da es auch hier welche gibt, die die URL oder das Verzeichnis auf dem Server an diversen Stellen speichern.

Ähnliche Beiträge

  • WordPress Performance: JS+CSS konsolidieren

    Einen sehr interessanten Ansatz zur Performancesteigerung eines WordPress-Weblogs liefert Tom Sherman in seinem Artikel „Consolidate CSS and JavaScript in WordPress“. Dabei hat er festgestellt, dass viele Plugins oft zum Problem werden – jedoch nicht wegen der steigenden Anzahl an Queries oder dem mehr an PHP-Code (das ist mit WP-Cache ganz gut in den Griff zu…

  • WP Tiger Admin – neue Version 3.0

    WP Tiger Admin von Steve Smith (OrderedList.com) war eines meiner Top-Plugins für WordPress. Bis ich festgestellt hab‘ dass einige Erweiterungen damit nicht so ganz wollen. Unter anderem die Widgets, auf die man eigentlich auch ganz gut verzichten kann. Sei’s drum. Steve hat jetzt Version 3.0 seines Plugins veröffentlicht. Mit WP Tiger Admin wird der Admin-Bereich…

  • Google Maps für Routenplanung brauchbar?

    In stark frequentierten Regionen ist Google bzw. seine Datenpartner richtig schnell mit der Aktualisierung der Satellitenbilder und Straßeninformationen. Die diversen Umbauarbeiten (hier neuer Holdingpoint Rwy 08L) am Münchner Flughafen zum Beispiel sind teilweise bereits nach wenigen Monaten zu sehen. Die Auflösung dort ist ebenfalls gigantisch.

    Google Maps veraltet

    Im Gegensatz dazu sind in manchen Fällen die ich kenne nicht nur die Satellitenbilder sondern auch die entsprechenden Straßendaten bereits knapp 10 Jahre alt und wurden seit dem Start von Maps vor einigen Jahren nicht mehr aktualisiert. Ein gutes Beispiel findet sich hier rund um meine frühere Wohnung. Dort fehlt ein komplettes Neubaugebiet inklusive der Straßen zwischen den Häusern, einer Umgehungsstraße, etc. Immerhin kennt Google bereits den Kreisverkehr am Ortseingang. Microsoft ist hier mit den live.com maps deutlich weiter.

    Windows Live Maps Gunzenlee

    Hier kennt man immerhin schon die Straßeninformationen – eine evtl. Routenplanung würde hier also deutlich treffsicherer bzw. überhaupt erstmal funktionieren. Leider finde ich keine Möglichkeit direkt zum Kartenausschnitt zu verlinken. Warum wundert mich das nur nicht? ;-)

    Ich bin mir sicher, dass das nur eines von vielen Beispielen für die mangelnde Aktualität der Google-Karten ist – sicher auch ein relativ unwichtiges, aber wenn dauerhaft nur die stark frequentierten Regionen aktualisiert werden, dann wird man sich schwer tun ein wirklich hochqualitatives Produkt zu etablieren. Wichtig ist bei einer solchen Onlineapplikation viel mehr als bei anderen die Aktualität. Solange ich auf herkömmliche Navigationssysteme zurückgreifen muss um halbwegs aktuelle Kartendaten zu haben, macht eine Onlinelösung dafür wenig Sinn.

  • Providerpreisspielchen

    Gerade eben hat mich ein Freund angerufen bzgl. einem dedizierten Server, den er sich gerne mieten möchte. Unter anderem kam auch Hetzner in’s Gespräch. Während dem Gespräch habe ich so rumgeklickt und mir auch mal die Domaingeschichten da angeschaut, da ich da ein günstiges Angebot aus der Werbung im Hinterkopf hatte. Siehe da: 3.90€ für…

  • Plesk Update 8.1.0

    Als ich eben das Plesk-Controlpanel meines Servers besuchte, wurde ich auf ein ausstehendes Update aufmerksam gemacht. Nicht wie sonst üblich einige kleinere Paketupdates sondern ein relativ großer Schritt: Version 8.1.0. Als herausragende Neugikeiten konnte ich erkennen: Unterstützung für MySQL 5.0 FastCGI Ruby on Rails AWStats (endlich – Webalizer ist soooo bescheiden) Es gibt angelich noch…

  • Makrotraining im Blumengarten

    Übers verlängerte Wochenende waren wir in der Heimat meiner Liebsten um Ihren Geburtstag zu feiern. Abseits der Feierlichkeiten und sonstigen familiären Verpflichtungen habe ich am Samstag und Sonntag die verbliebenen Sonnenstrahlen genutzt und bin mit der Kameratasche bewaffnet durch Dorf und Blumengarten gezogen. Dabei kam vor allem das Makro-Objektiv zum Einsatz… Mehr vom Wochenende wenn…

21 Kommentare

  1. Sofern man die Datenbank ohnehin auf einen anderen Server hochladen muss, kann man die URL-Änderung auch machen, indem man den Inhalt in eine Textverarbeitung lädt und die URL mit „Ersetzen“ ändert. Funktioniert einwandfrei!

  2. ja, ne schöne Anleitung, allerdings würde ich es ebenso wie Ingo machen. Das ist dann halt schon etwas einfacher und vor allem schneller. – schönen Gruß – alex
    ps: steht die Küche fest? Ich hatte leider viel zu tun, aber nächstesmal vielleicht.. ;)

  3. Hmm naja schneller ist es vermutlich nur dann wenn man ohnehin den Dump runterlädt und wieder hochlädt. Bei mir hat die ganze Aktion auf dem selben Server stattgefunden, da ist so ein SQL-Query deutlich schneller als Dump ziehen, runterladen, korrigieren, hochladen, einspielen.

    Küche: Ja ist soweit alles im Griff – übernächste Woche gehts los. Hilfe brauchen wir wohl erstmal keine mehr, aber danke der Nachfrage.

  4. Vielen Dank für diese prima Anleitung. Ein Umzug steht bei mir zwar aktuell nicht an, aber beruhigend wenn man weiß es gibt eine Anleitung nach der man vorgehen kann :-) Ein toller Betrag zum Thema „weniger Stress“ :-D

  5. Hi Frank,

    da meine .cn Domain in China meistens gesperrt ist läuft unser Blog auf einem Verzeichnis meiner alten Webdesignklitsche. Die Folge daraus ist natürlich eine absolut unsexy URL, die demnächst ausgetauscht werden soll. Deshalb besten Dank für die Anleitung und den Denkanstoss das doch die Tage mal zu machen ;-)

    Cheers aus Chongqing,
    Sven

  6. Eine sehr hilfreiche Beschreibung, die aber leider nicht 1:1 umsetzen kann. Vor mir steht die Aufgabe, eine gehackte Version 2.0.5 zu retten. Durch das Hacken wurden die Seiten mit SPAM verseucht und ich glaube, es wird auch SPAM versendet.
    Deshalb dachte ich mir, unter einem anderen Pfad auf dem Server WP aktuell zu installieren und die (gesäuberten) Beiträge, Kommentare und Userdaten zu übernehmen. Aber das scheint gar nicht so einfach zu sein. Vielleicht hat ja jemand Tips für diese Aufgabenstellung?

    Danke schon mal sagt Wolfgang.

  7. Ich bin vor ner Weile auch mit meinem WordPress-Blog umgezogen, nur wollte ich gleichermaßen die Permalink-Struktur (ohne Blogid, ohne Unterverzeichnis) beim Update verändern. Das war da schon ein bisschen problematischer, da leider die ganzen Redirect Plugins nicht funktionierten und ich so manuell einen regulären Ausdruck entwickeln musste, den ich in einen RedirectMatch gepackt habe.

  8. Perfektes Timing. Musste auch einen Blog von einer Subdomain auf die Hauptdomain umziehen und musste dank deiner Anleitung nicht lange suchen.

    Hat alle super geklappt, Danke schön!

  9. Da ich nicht fließend MySQL spreche, ist mir die Anleitung leider ein Stück weit zu hoch. Vielleicht kannst du die Geschichte mit den SQL-Querys und Datenbankabfragen ja irgendwann nochmal für Dummies wie mich erklären.

  10. Hi Stefan
    An sich brauchst du einen Zugriff zu deiner MySQL-Datenbank, in der Regel läuft sowas mit phpMyAdmin, welcher dir dein Hoster zur Verfügung stellt. (Meist irgendwo im ControlPanel vom Webhoster)
    Anschliessend die Datenbank von WordPress auswählen (heisst in der Regel wordpress ;) ), und die obengenannten angepassten Ausführungsbefehle (Query) als SQL-Befehl ausführen…

    Die Sprache heisst so nebenbei SQL, da MySQL „nur“ eine implementierte Datenbank ist, welche eben diese Datenbankbefehlssprache beherscht. Daneben gibt es noch MSSQL, Oracle, Postgress, uvm…

    Eine Warnung zum Schluss: Wenn du das machen willst, zuerst ein Backup deiner Datenbank ziehen, wenn du nicht genau weisst, was du da machst. Ansonsten gibt es zig Bücher zu SQL.

  11. Toll! Das war jetzt das zweite Mal. Viel besser als irgendwelche umständlichen Plugins und irgendwelche komplizierten Beschreibungen. Mit ein klein wenig Vorbereitung dauert der Ausfall zwischen alter und neuer Domain keine halbe Minute, zackzack und schon fertig. Dankeschön!

  12. So, sicher ist sicher, ich habe mir diese Seite erst einmal in meinen Favoriten abgespeichert. Vielen Dank für die detailgenaue Beschreibung.

    Auch wenn ich ein paar Monate hinter der Zeit dieses Posts bin, eine Frage habe ich: Mit welchem Plugin erzeugt Dein WP so hervorragende URL´s?

    @Hippie
    In Deinem Eigenen Blog hast Du aber ganz schön über die WordPress-Konfiguration geflucht.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert